

// Math.random();//作业——这个是什么？


import java.util.Random;
import java.util.Scanner;
public class TestDemo {


//    编程习惯
//括号能加则加--写花括号之前有空格--运算符前后有空格

// ---------------------------- 以下为作业 ------------------------------------------
//打印 1 - 100 之间所有的素数
    public static void main(String[] args) {
        for (int i = 2; i <=100 ; i++) {
            int flag=1;
            for (int j = 2; j <i ; j++) {
                if(i%j==0) {
                    flag=0;
                    break;
                }
            }
            if(flag==1) {
                System.out.print(i+" ");
            }
        }
    }

//    编写程序数一下 1到 100 的所有整数中出现多少个数字9
//    9 19 29 39 49 59 69 79 89 90
//    91 92 93 94 95 96 97 98
//    99
    public static void main02(String[] args) {
        int count=0;
        for (int i = 1; i <=100 ; i++) {
            if(i%10==9) {
                count++;
            }
            if(i/10==9) {
                count++;
            }
        }
        System.out.println(count);
    }

//    输出 1000 - 2000 之间所有的闰年
    public static void main03(String[] args) {
        for (int i = 1000; i <=2000 ; i++) {
            if(i%400==0 || (i%100!=0 && i%4==0)) {
                System.out.print(i+" ");
            }
        }
    }

//    给定一个数字，判定一个数字是否是素数
    public static void main04(String[] args) {
        Scanner scan =new Scanner(System.in);
        int n= scan.nextInt();
        int flag=1;
        for (int i = 2; i <n ; i++) {
            if(n%i==0) {
                flag=0;
                break;
            }
        }
        if(flag==1) {
            System.out.printf("%d是素数\n",n);
        }else {
            System.out.printf("%d不是素数\n",n);
        }
    }

//    求一个整数，在内存当中存储时，二进制1的个数。
    public static void main05(String[] args) {
        Scanner scan =new Scanner(System.in);
        int n= scan.nextInt();
        int count=0;
        for (int i = 0; i < 32 ; i++) {
            if(((n>>i) & 1)==1) {
                count++;
            }
        }
        System.out.println(count);
    }

//    求2个整数的最大公约数
    public static void main06(String[] args) {
        Scanner scan =new Scanner(System.in);
        System.out.print("请输入第一个整数：>");
        int n= scan.nextInt();
        System.out.print("请输入第二个整数：>");
        int m= scan.nextInt();

        while (m%n>0) {
            int tmp=m%n;
            m=n;
            n=tmp;
        }
        System.out.println(n);


    }

//    输出乘法口诀表
public static void main07(String[] args) {
    Scanner scan=new Scanner(System.in);
    int n= scan.nextInt();
    for (int i = 1; i <=n ; i++) {
        for (int j = 1; j <=i ; j++) {
            System.out.printf("%-2d*%-2d=%-2d ",i,j,i*j);
        }
        System.out.println();
    }
}

//    求出0～999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数
//    本身，如： 153＝1^3＋5^3＋3^3 ，则153是一个“水仙花数”。)
public static void main08(String[] args) {
//    Scanner scan=new Scanner(System.in);
//    int n= scan.nextInt();
    for (int i = 153; i <=999 ; i++) {
        int sum=0;
        int ret=i;
        while (ret>0) {
            sum+=(ret%10)*(ret%10)*(ret%10);
            ret/=10;
        }
        if(sum==i) {
            System.out.println(i);
        }
    }
}

//获取一个数二进制序列中所有的偶数位和奇数位，分别输出二进制序列。
public static void main09(String[] args) {
    Scanner scan=new Scanner(System.in);
    int n= scan.nextInt();
    for (int i = 31; i >0 ; i-=2) {
        System.out.print(((n>>i)&1)+" ");
    }
    System.out.println();
    for (int i = 30; i >=0 ; i-=2) {
        System.out.print(((n>>i)&1)+" ");
    }
}


//----------------------------- 以下为知识点 ---------------------------------------
    //打印X-Java版本
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            for(int i=0;i<n;i++){
                for(int j=0;j<n;j++){
                    if(i==j || (i+j==n-1)){
                        System.out.print("*");
                    }
                    else{
                        System.out.print(" ");
                    }
                }
                System.out.println();

            }

        }
    }

    //猜数字-Java版本
    public static void main2(String[] args) {
        Scanner scan=new Scanner(System.in);
        //不能写1，应该写布尔表达式

        Random random=new Random();//真随机
        int ranNum=random.nextInt(100);//表示0-100之间的数字
        while(true) {
            System.out.print("请输入一个1-100之间的数字：>");
            int n= scan.nextInt();
            if(ranNum<n) {
                System.out.println("猜大了！");
            }
            else if(ranNum>n) {
                System.out.println("猜小了！");
            }
            else {
                System.out.println("猜对了！");
                break;
            }
        }
            
    }


    
    
    
    public static void main3(String[] args) {
        int year=2021;
        if(year%400==0 || (year%100!=0 && year%4==0)) {
            System.out.println("是闰年！");
        }else {
            System.out.println("不是闰年！");
            }
        }


//        不能做switch语句的参数有什么？
//    long double flaot boolean
//    特别注意：char 和 String类型也可以做switch的参数
    public static void main4(String[] args) {
        switch ("哈哈") {
            case "哈哈":
                System.out.println("哈哈");
                break;
        }
        System.out.println("===========================");
        switch ('h') {
            case 'h':
                System.out.println("keyi");
                break;
        }
    }
//import java.util.Scanner;——需要导入包
    //输入一个数n，求这个数的阶乘和——while版本
    public static void main5(String[] args) {
        Scanner scan =new Scanner(System.in);//先按这个格式写
        int n=scan.nextInt();
        int ret=1;
        int sum=0;
        int i=1;
        while(i<=n) {
            ret*=i;
            sum+=ret;
            i++;
        }
        System.out.println(sum);
    }

    //输入一个数n，求这个数的阶乘和——for版本
    public static void main6(String[] args) {
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        int ret=1;
        int sum=0;
        for(int i=1;i<=n;i++) {
            ret*=i;
            sum+=ret;
        }
        System.out.println(sum);
    }

    //用while写一个死循环：
    public static void main7(String[] args) {
        while (true) {
            System.out.println("hello");
        }
    }

//      用for写一个死循环——只要不写控制语句就是死循环
    public static void main8(String[] args) {
        for (int i = 0;; i++) {
            System.out.println("hello");
        }

    }

    public static void main9(String[] args) {
        for (;;) {
            System.out.println("hello");
        }
    }

    public static void main10(String[] args) {
        for (int i=1;;) {
            System.out.println("hello");
        }
    }

    public static void main11(String[] args) {
        System.out.println("输出且换行");
        System.out.print("输出且不换行");
        System.out.printf("%s\n","格式化输出！和C语言一样！");
    }

    //import java.util.Scanner;——需要导入包
    public static void main12(String[] args) {
        Scanner scan = new Scanner(System.in);//先固定这样写
        int n= scan.nextInt();//表示读入一个 整数
        float nn=scan.nextFloat();//表示输入一个浮点数
        double nnf=scan.nextDouble();//表示输入一个双精度浮点数
        String nnn=scan.nextLine();//表示输入一个字符串
        String name=scan.next();//相较于nextline有一个很大的缺点，遇到空格就结束了

        scan.close();//还可以加一个这个关闭
    }

    public static void main13(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入年龄：");
        int age=scan.nextInt();
        System.out.println("请输入名字：");
        String name=scan.next();//不会读取/n
    }

    public static void main14(String[] args) {
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入年龄：");
        int age=scan.nextInt();

        //这样处理：
        scan.nextLine();
        //此时上边输入完成后回车会被下边读取到
        System.out.println("请输入名字：");
        String name=scan.nextLine();//会读取/n
    }

    public static void main15(String[] args) {
        Scanner scan=new Scanner(System.in);
        //循环读取：在cmd上是ctrl+z；idea上是ctrl+d
        while(scan.hasNextInt()) {
            int n=scan.nextInt();
            System.out.println(n);
        }
    }

    public static void main16(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (sc.hasNextInt()) {
            int tmp = sc.nextInt();
            //功能语句……
        }
    }

    
}
